home *** CD-ROM | disk | FTP | other *** search
/ Super CD / Super CD.iso / geomitri / truss / ma2.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1990-01-20  |  3.7 KB  |  158 lines

  1. 5  CLS
  2. 10  DIM AI1(10),AL(10),M12(10),M21(10),SM12(10),SM21(10)
  3. 20  DIM M13(10),M31(10),MA(10),MB(10),ML(10),MR(10),BALMR(10,10)
  4. 40  DIM DFL(10),DFR(10),MTL(10),MTR(10),BALML(10,10),W(10),PT1(10)
  5. 50  DIM COML(10,10),COMR(10,10),P(10,10),DIST(10,10),PT(10),R(10),TM(10)
  6. 60  PRINT " INTER NO OF ELEMENTS"
  7. 70  INPUT NOE
  8. 80  NOS=NOE+1
  9. 90  PRINT " FOR PINNED SUPPORT TYPE (P)"
  10. 100  PRINT " FOR FIXED SUPPORT TYPE (F)"
  11. 110  PRINT " SUPPORT #1 IS..(P/F)"
  12. 120  INPUT NS1$
  13. 130  PRINT " SUPPORT #";NOS;" IS.."
  14. 140  INPUT NS2$
  15. 150  FOR I=1 TO NOE
  16. 170  PRINT " MOMENT OF INERTIA FOR ELEMENT #";I;" IS.."
  17. 180   INPUT AI1(I)
  18. 200   PRINT " LENGTH OF ELEMENT  #";I;" IS.."
  19. 210   INPUT AL(I)
  20. 220   NEXT I
  21. 221  CLS
  22. 230   FOR J=1 TO NOE
  23. 250   PRINT " FOR ELEMENT #";J
  24. 260   PRINT " DO YOU WANT A CONCENTRATED LOAD ? (Y/N)"
  25. 280   INPUT J1$
  26. 290   IF(J1$ ="Y")THEN 300 ELSE 440
  27. 300   PRINT " HOW MANY CONCENTRATED LOADS DO YOU WANT ?"
  28. 310   INPUT J2(J)
  29. 320   SM12(J)=0
  30. 330   SM21(J)=0
  31. 340   FOR L1=1 TO J2(J)
  32. 350   PRINT " INTER THE VALUE OF CONCENTRATED LOAD #";L1;" IN KN"
  33. 360   INPUT P(J,L1)
  34. 370   PRINT " INTER ITS DISTANCE FROM SUPPORT  #";J
  35. 380   INPUT DIST(J,L1)
  36. 390   M12(L1)=(-P(J,L1)*DIST(J,L1)*(AL(J)-DIST(J,L1))^2)/(AL(J)^2)
  37. 400   M21(L1)=(P(J,L1)*DIST(J,L1)^2*(AL(J)-DIST(J,L1)))/(AL(J)^2)
  38. 410   SM12(J)=SM12(J)+M12(L1)
  39. 420   SM21(J)=SM21(J)+M21(L1)
  40. 430   NEXT L1
  41. 440     M12(J)=0
  42. 450   M21(J)=0
  43. 460   PRINT " DO YOU WANT A DISTRIBUTED LOAD ? (Y/N)"
  44. 480   INPUT J3$
  45. 490   IF (J3$="Y") THEN 500 ELSE 550
  46. 500   PRINT " INTER THE VALUE OF THE DISTRIBUTED LOAD IN kN/m"
  47. 510   INPUT W(J)
  48. 520   M13(J)=(-W(J)*AL(J)^2)/12
  49. 530   M31(J)=-M13(J)
  50. 540   GOTO 580
  51. 550   M13(J)=0
  52. 560   M31(J)=0
  53. 580    MA(J)=SM12(J)+M13(J)
  54. 590   MB(J)=SM21(J)+M31(J)
  55. 591  CLS
  56. 600   NEXT J
  57. 610   FOR N6=1 TO NOS
  58. 620   ML(N6)=MB(N6-1)
  59. 630   MR(N6)=MA(N6)
  60. 640   NEXT N6
  61. 650   IF(NS1$="P") THEN 660  ELSE 690
  62. 660   DFR(1)=1
  63. 670   DFL(1)=0
  64. 680   GOTO 720
  65. 690   DFL(1)=0
  66. 700   DFR(1)=0
  67. 720      IF(NS2$="P") THEN 730 ELSE 760
  68. 730   DFL(NOS)=1
  69. 740   DFR(NOS)=0
  70. 750   GOTO 790
  71. 760   DFR(NOS)=0
  72. 770   DFL(NOS)=0
  73. 790      FOR K=2 TO NOE
  74. 800   DFL(K)=(AI1(K-1)/AL(K-1))/((AI1(K-1)/AL(K-1))+(AI1(K)/AL(K)))
  75. 810   DFR(K)=1-DFL(K)
  76. 820   NEXT K
  77. 830   FOR KI=1 TO NOS
  78. 840   MTL(KI)=ML(KI)
  79. 850   MTR(KI)=MR(KI)
  80. 860   NEXT KI
  81. 870   JJ=1
  82. 880   FOR II=1 TO NOS
  83. 890   BALML(JJ,II)=0
  84. 900   BALMR(JJ,II)=0
  85. 910   NEXT II
  86. 920   FOR M1=1 TO NOS
  87. 930   BALML(JJ,M1)=-(ML(M1)+MR(M1))*DFL(M1)
  88. 940   BALMR(JJ,M1)=-(ML(M1)+MR(M1))*DFR(M1)
  89. 950   NEXT M1
  90. 960    IF (JJ=6)GOTO 1090
  91. 970   FOR M2=1 TO NOS
  92. 980   COML(JJ,M2)=BALMR(JJ,M2-1)/2
  93. 990   COMR(JJ,M2)=BALML(JJ,M2+1)/2
  94. 1000   NEXT M2
  95. 1010   COML(JJ,1)=0
  96. 1020   COMR(JJ,NOS)=0
  97. 1030   FOR KS=1 TO NOS
  98. 1040   ML(KS)=COML(JJ,KS)
  99. 1050   MR(KS)=COMR(JJ,KS)
  100. 1060   NEXT KS
  101. 1070    JJ=JJ+1
  102. 1080    GOTO 880
  103. 1090   FOR JR=1 TO NOS
  104. 1100    FOR JT=1 TO JJ
  105. 1110   MTL(JR)=MTL(JR)+BALML(JT,JR)+COML(JT,JR)
  106. 1120   MTR(JR)=MTR(JR)+BALMR(JT,JR)+COMR(JT,JR)
  107. 1130   NEXT JT
  108. 1140   NEXT JR
  109. 1141   CLS
  110. 1150   PRINT "FOR SUPPORT NO. (1) :"
  111. 1160   PRINT "MOMENT=(";MTR(1);")"
  112. 1170   FOR N2=2 TO NOE
  113. 1190   PRINT " FOR SUPPORT NO. (";N2;") :"
  114. 1200   PRINT "MOMENT TO THE LEFT =(";MTR(N2);")"
  115. 1210   PRINT "MOMENT TO THE RIGHT=(";MTL(N2);")"
  116. 1220   NEXT N2
  117. 1230   PRINT "FOR SUPPORT NO.( ";NOS;")"
  118. 1240   PRINT "MOMENT=(";MTL(NOS);")"
  119. 1242   PT(JF)=0
  120. 1244   PT1(JF)=0
  121. 1250   FOR JF=1 TO NOS
  122. 1260   FOR JG=1 TO J2(JF)
  123. 1265   AL(NOS)=1
  124. 1270   PT(JF)=PT(JF)+(P(JF,JG)*DIST(JF,JG)/AL(JF))
  125. 1272   PT1(JF)=PT1(JF)+(P(JF,JG)*(AL(JF)-DIST(JF,JG)))/AL(JF)
  126. 1280   NEXT JG
  127. 1282   PRINT "PTOTAL(";JF;")=";PT(JF)
  128. 1284  PRINT "PTO1(";JF;")=";PT1(JF)
  129. 1290   NEXT JF
  130. 1295   FOR IG=1 TO NOE
  131. 1296   WT(IG)=W(IG)*AL(IG)/2
  132. 1300   NEXT IG
  133. 1302  FOR IX= 1 TO NOE
  134. 1304  MTL(IX)=MTR(IX)
  135. 1305  NEXT IX
  136. 1310  FOR IX= 1 TO NOE
  137. 1320  MTL(IX)=MTR(IX)
  138. 1330  NEXT IX
  139. 1333  AA=0-(MTL(NOS))
  140. 1334   MTL(NOS)=AA
  141. 1340   AL(0)=1
  142. 1345   AL(NOS)=1
  143. 1365  IF NS1$="F" THEN 1370 ELSE 1375
  144. 1370  MTL(1)=0
  145. 1375  IF NS2$="F" THEN 1377 ELSE 1380
  146. 1377  MTL(NOS)=0
  147. 1380   FOR KL=1 TO NOS
  148. 1383   IF AL(KL)=0 THEN 1385 ELSE 1387
  149. 1385   TM(KL)=0
  150. 1386   GOTO 1390
  151. 1387   TM(KL)=(MTL(KL)/AL(KL))
  152. 1390   NEXT KL
  153. 1420   FOR IZ=1 TO NOS
  154. 1430     R(IZ)=(W(IZ-1)*AL(IZ-1))/2 + PT(IZ-1)+ TM(IZ-1)- (MTL(IZ)/AL(IZ-1)) - TM(IZ) + (MTL(IZ+1)/AL(IZ)) + (W(IZ)*AL(IZ))/2 + PT1(IZ)
  155. 1440   PRINT "R(";IZ;")=";R(IZ)
  156. 1450  NEXT IZ
  157. 1480   END
  158.